package com.ruibang.glass.sale.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruibang.glass.common.domain.ProductInfo;
import com.ruibang.glass.sale.domain.req.*;
import com.ruibang.glass.sale.dto.*;
import com.ruibang.glass.sale.entity.SaleShippingApplication;
import com.ruibang.glass.sale.entity.SalesShippingItems;
import com.teaming.cloud.framework2.common.model.ResultBody;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 发货申请记录表 服务类
 * </p>
 *
 * @author mameng
 * @since 2024-03-30
 */
public interface SaleShippingApplicationService extends IService<SaleShippingApplication> {

    IPage<SaleShippingApplication> getPage(SaleshippingApplicationReq saleshippingApplicationReq);

    /**
     * 出入库报表
     *
     * @param gSaleContractManReq
     * @return
     */
    IPage<GSaleShappingDTO> getNewPage(GSaleContractManReq gSaleContractManReq);

    void orderExport(GSaleContractManReq gSaleOrderReq, HttpServletResponse response);


    IPage<SaleShippingApplication> moreList(SaleshippingApplicationReq saleshippingApplicationReq);

    List<SaleShippingApplication> getMoreSelectList();

    void addSaleShippingApplication(List<SaleShippingApplication> saleShippingApplication);

    void addLessShipping(SaleShippingApplication saleShippingApplication);

    void updateSaleShippingApplication(SaleShippingApplication saleShippingApplication);

    SaleShippingApplication getOneSaleShippingApplication(String id);

    List<ProductInfo> getProductList(String id);

    void updateQs(String id);

    List<StatisticOrderDTO> getStatisticOrderDTOList(GSaleStatisticsManReq saleStatisticsManReq);

    PayProgressDTO paymentProgress(SalePayProgressReq salePayProgressReq);

    List<GSaleDisputeLineDTO> getGSaleDisputeLineDTOList(SalePayProgressReq salePayProgressReq);


    String getMaterialOUTNumber();


    List<SalesShippingItems> getProductByOrderNumber(String number);

    List<SaleShippingApplication> getShippingNumber(String number);

    List<SalesShippingItems> getATypeList(SalesShippingItems salesShippingItems);

    void saleShippingApplicationById(SaleShippingApplication saleShippingApplication);

    void updateSaleQualityById(String id);

}
